#ifndef MYSTACK


template <typename T>
struct Elem
{
	Elem(Elem<T>* p,Elem<T>* n,T v)
	   : prev(p), next (n), value (v)
	{};
	Elem<T>* prev;
	Elem<T>* next; 
	T value;
};
template <typename T>
class stack
{
public:
	stack();
	~stack();
	void stack_push(T);
	T stack_pop();
	void stack_dump();
	void stack_Ok();
private:
	Elem<T>* top ;
	int count;

};
#define MYSTACK
#endif